package com.khalil.kkadmin.system.menu;

import com.khalil.kkadmin.infrastructure.jpa.domain.TreeEntityBase;
import jakarta.persistence.Entity;
import jakarta.persistence.EntityListeners;
import jakarta.persistence.Table;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;

@EntityListeners(value = AuditingEntityListener.class)
@Entity
@Table(name = "sys_menu")
@Data
@EqualsAndHashCode(callSuper = true)
public class SysMenu extends TreeEntityBase<SysMenu, Integer> {

    /**
     * 菜单名称
     */
    private String menuName;

    /**
     * 类型（dir:目录 menu:菜单 button:按钮）
     */
    private String menuType;

    /**
     * 是否为外链（0是 1否）
     */
    private String outerLink;

    /**
     * 路由地址
     */
    private String path;

    /**
     * 组件路径
     */
    private String component;

    /**
     * 路由参数
     */
    private String query;

    /**
     * 路由名称，默认和路由地址相同的驼峰格式（注意：因为vue3版本的router会删除名称相同路由，为避免名字的冲突，特殊情况可以自定义）
     */
    private String routeName;


    /**
     * 显示状态（0显示 1隐藏）
     */
    private String visible;

    /**
     * 菜单状态（0正常 1停用）
     */
    private String status;

    /**
     * 权限字符串
     */
    private String permissions;

    /**
     * 菜单图标
     */
    private String icon;
}
